From c042bea4ad4d315eaef8da1143d117097eb87d5c Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=98yvind=20Kol=C3=A5s?= Date: Fri, 26 Aug 2005 13:53:31 +0000 Subject: [PATCH] added component shuffling test --- ChangeLog | 5 +++ tests/Makefile.am | 2 + tests/rgb_to_bgr.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+) create mode 100644 tests/rgb_to_bgr.c diff --git a/ChangeLog b/ChangeLog index b887dd8..aee8929 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-08-26 Øyvind Kolås + + * tests/rgb_to_bgr.c: added component shuffling test + * tests/Makefile.am: added rgb_to_bgr to TESTS + 2005-08-25 Øyvind Kolås * docs/index-static.html.in: removed done things from TODO list. diff --git a/tests/Makefile.am b/tests/Makefile.am index 8d9c370..6a03c1c 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -2,6 +2,7 @@ TESTS = \ float_to_u8 \ grayscale_to_rgb \ u8_to_float \ + rgb_to_bgr \ rgb_to_lab_to_rgb \ rgb_to_ycbcr \ rgb_to_ycbcr_to_rgb \ @@ -12,6 +13,7 @@ TESTS = \ float_to_u8_SOURCES = float_to_u8.c u8_to_float_SOURCES = u8_to_float.c grayscale_to_rgb_SOURCES = grayscale_to_rgb.c +rgb_to_bgr_SOURCES = rgb_to_bgr.c rgb_to_lab_to_rgb_SOURCES = rgb_to_lab_to_rgb.c srgb_to_lab_u8_SOURCES = srgb_to_lab_u8.c rgb_to_ycbcr_SOURCES = rgb_to_ycbcr.c diff --git a/tests/rgb_to_bgr.c b/tests/rgb_to_bgr.c new file mode 100644 index 0000000..49117a2 --- /dev/null +++ b/tests/rgb_to_bgr.c @@ -0,0 +1,93 @@ +/* babl - dynamically extendable universal pixel conversion library. + * Copyright (C) 2005, Øyvind Kolås. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#include +#include "babl.h" +#include "babl-internal.h" + +#define PIXELS 3 +#define TOLERANCE 0 + +unsigned char source_buf [PIXELS*3]= + {10,20,30, + 30,30,30, + 40,50,60}; + +unsigned char reference_buf [PIXELS*3]= + {30,20,10, + 30,30,30, + 60,50,40}; + +unsigned char destination_buf [PIXELS*3]; + +int +test (void) +{ + Babl *fish; + int i; + int OK=1; + + fish = babl_fish ( + babl_format_new ( + "foo", + babl_model ("rgb"), + babl_type ("u8"), + babl_component ("R"), + babl_component ("G"), + babl_component ("B"), + NULL + ), + babl_format_new ( + "bar", + babl_model ("rgb"), + babl_type ("u8"), + babl_component ("B"), + babl_component ("G"), + babl_component ("R"), + NULL + ) + ); + + babl_process (fish, source_buf, destination_buf, PIXELS); + + for (i=0; i TOLERANCE) + { + babl_log ("%2i (%2i%%3=%i, %2i/3=%i) is %i should be %i", + i, i,i%3, i,i/3, destination_buf[i], reference_buf[i]); + OK=0; + } + } + if (!OK) + return -1; + return 0; +} + +int +main (int argc, + char **argv) +{ + babl_init (); + if (test()) + return -1; + babl_destroy (); + return 0; +} -- 2.30.2